package com.hgsf.service;

import com.hgsf.entity.Course;
import com.hgsf.entity.SelectedCourse;
import com.hgsf.entity.Student;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Vector;

public interface StudentService {
	/**
	 * 验证学生登录
	 * 
	 * @param s
	 * @return
	 */
	public Student studentLogin(Student s);

	/**
	 * 查询可选课程信息
	 * 
	 * @return
	 */
	public List<Map<String, String>> queryOptionCourse(long sid);

	/**
	 * 查看可选课程,并转化为Vector形式
	 * 
	 * @return
	 */
	public List<Vector> queryCourseToVector(long sid);

	/**
	 * 条件查找课程
	 * 
	 * @return
	 */
	public List<Vector> queryCourseByConditionToVector(String condition, long sid);

	/**
	 * 选课
	 * 
	 * @param course
	 * @return
	 */
	public boolean selectCourse(SelectedCourse course);

	/**
	 * 查询已选课程,以vector形式返回
	 * 
	 * @param sid
	 * @return
	 */
	public List<HashMap<String,String>> querySelectedCourse(long sid);

	/**
	 * 查询已选课程,以map形式返回
	 * 
	 * @param sid
	 * @return
	 */
	List<Map<String, String>> querySelectedCourseToListMap(long sid);

	/**
	 * 查询学生个人信息
	 * 
	 * @param sid
	 * @return
	 */
	Map<String, String> queryStudentMsg(long sid);

	/**
	 * 更改学生信息
	 * 
	 * @param s
	 * @return
	 */
	boolean alterStudentMsg(Student s);

	/**
	 * 修改学生密码
	 * 
	 * @param s
	 * @return
	 */
	boolean alterStuPsw(Student s);

	/**
	 * 查询某课程最大选课人数
	 * 
	 * @param c
	 * @return
	 */
	int queryCourseMaxPeople(Course c);

	boolean canSelectCourse(Course c, Student s);

	/**
	 * 查询学生所有信息
	 * 
	 * @param sid
	 * @return
	 */
	Student queryCompletionStuMsg(long sid);

	/**
	 * 查询已选课程人数
	 * 
	 * @param c
	 * @return
	 */
	int queryPeopleCount(Course c);

	/**
	 * 查看学生已选课程数量
	 * 
	 * @param s
	 * @return
	 */
	int queryCourseCount(Student s);

	/**
	 * 查看学生最大选课数量
	 */
	int queryMaxCourseCount(Student s);
}
